INNER JOIN என்றால் என்ன?
INNER JOIN keyword இரண்டு அட்டவணைகளிலும் பொருந்தக்கூடிய மதிப்புகளைக் கொண்ட பதிவுகளைத் தேர்ந்தெடுக்கிறது.
Products அட்டவணையில் இருந்து ஒரு தேர்வைப் பார்ப்போம்:
Products அட்டவணை
+-----------+----------------+------------+-------+
| ProductID | ProductName | CategoryID | Price |
+-----------+----------------+------------+-------+
| 1 | Chais | 1 | 18 |
| 2 | Chang | 1 | 19 |
| 3 | Aniseed Syrup | 2 | 10 |
+-----------+----------------+------------+-------+
மற்றும் Categories அட்டவணையில் இருந்து ஒரு தேர்வைப் பார்ப்போம்:
Categories அட்டவணை
+------------+----------------+----------------------------------------------------+
| CategoryID | CategoryName | Description |
+------------+----------------+----------------------------------------------------+
| 1 | Beverages | Soft drinks, coffees, teas, beers, and ales |
| 2 | Condiments | Sweet and savory sauces, relishes, spreads, etc. |
| 3 | Confections | Desserts, candies, and sweet breads |
+------------+----------------+----------------------------------------------------+
நாம் Products அட்டவணையை Categories அட்டவணையுடன் இணைப்போம், இரண்டு அட்டவணைகளில் இருந்தும் CategoryID புலத்தைப் பயன்படுத்தி:
உதாரணம்
Products மற்றும் Categories-ஐ INNER JOIN keyword-ஐப் பயன்படுத்தி இணைக்கவும்:
SELECT ProductID, ProductName, CategoryName
FROM Products
INNER JOIN Categories ON Products.CategoryID = Categories.CategoryID;
குறிப்பு:
INNER JOIN keyword பொருந்தக்கூடிய மதிப்புகளைக் கொண்ட வரிசைகளை மட்டுமே தரும். அதாவது உங்களிடம் CategoryID இல்லாத ஒரு பொருள் இருந்தால், அல்லது Categories அட்டவணையில் இல்லாத CategoryID-ஐக் கொண்ட ஒரு பொருள் இருந்தால், அந்தப் பதிவு முடிவில் திரும்பப் பெறப்படாது.
தொடரியல்
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
நெடுவரிசைகளுக்குப் பெயரிடுதல்
SQL statement-ல் நெடுவரிசைகளைக் குறிப்பிடும் போது அட்டவணைப் பெயரைச் சேர்ப்பது ஒரு நல்ல பழக்கமாகும்.
உதாரணம்
அட்டவணைப் பெயர்களைக் குறிப்பிடவும்:
SELECT Products.ProductID, Products.ProductName, Categories.CategoryName
FROM Products
INNER JOIN Categories ON Products.CategoryID = Categories.CategoryID;
குறிப்பு:
மேலே உள்ள உதாரணம் அட்டவணைப் பெயர்களைக் குறிப்பிடாமல் வேலை செய்கிறது, ஏனெனில் குறிப்பிடப்பட்ட நெடுவரிசைப் பெயர்கள் எதுவும் இரண்டு அட்டவணைகளிலும் இல்லை. நீங்கள் SELECT statement-ல் CategoryID-ஐச் சேர்க்க முயற்சித்தால், நீங்கள் அட்டவணைப் பெயரைக் குறிப்பிடாவிட்டால் பிழை கிடைக்கும் (CategoryID இரண்டு அட்டவணைகளிலும் இருப்பதால்).
JOIN அல்லது INNER JOIN
JOIN மற்றும் INNER JOIN ஒரே முடிவைத் தரும்.
INNER என்பது JOIN-க்கான இயல்புநிலை join வகை, எனவே நீங்கள் JOIN என்று எழுதும் போது, parser உண்மையில் INNER JOIN என்று எழுதுகிறது.
உதாரணம்
JOIN என்பது INNER JOIN-க்கு சமமானது:
SELECT Products.ProductID, Products.ProductName, Categories.CategoryName
FROM Products
JOIN Categories ON Products.CategoryID = Categories.CategoryID;
மூன்று அட்டவணைகளை JOIN செய்தல்
பின்வரும் SQL statement வாடிக்கையாளர் மற்றும் ஷிப்பர் தகவல்களுடன் அனைத்து ஆர்டர்களையும் தேர்ந்தெடுக்கிறது:
இங்கே Shippers அட்டவணை உள்ளது:
Shippers அட்டவணை
+-----------+-------------------+------------------+
| ShipperID | ShipperName | Phone |
+-----------+-------------------+------------------+
| 1 | Speedy Express | (503) 555-9831 |
| 2 | United Package | (503) 555-3199 |
| 3 | Federal Shipping | (503) 555-9931 |
+-----------+-------------------+------------------+
உதாரணம்
SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName
FROM ((Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID)
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);
புரிதல்:
இந்த உதாரணம் மூன்று அட்டவணைகளை எவ்வாறு இணைக்க வேண்டும் என்பதைக் காட்டுகிறது. முதலில் Orders மற்றும் Customers இணைக்கப்படுகின்றன, பின்னர் அந்த முடிவு Shippers அட்டவணையுடன் இணைக்கப்படுகிறது.
INNER JOIN காட்சிப் பிரதிநிதித்துவம்
Products அட்டவணை
Categories அட்டவணை
INNER JOIN முடிவு
கவனிக்க: CategoryID = 3 உள்ள தயாரிப்புகள் இல்லாததால், "Confections" வகை முடிவில் தோன்றாது.